<!DOCTYPE html>
<html lang=zh>
<head>
  <meta charset="utf-8">
  
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui">
  <meta name="renderer" content="webkit">
  <meta http-equiv="Cache-Control" content="no-transform" />
  <meta http-equiv="Cache-Control" content="no-siteapp" />
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <meta name="format-detection" content="telephone=no,email=no,adress=no">
  <!-- Color theme for statusbar -->
  <meta name="theme-color" content="#000000" />
  <!-- 强制页面在当前窗口以独立页面显示,防止别人在框架里调用页面 -->
  <meta http-equiv="window-target" content="_top" />
  
  
  <title>linux-基础 | Dreamcat</title>
  <meta name="description" content="引言linux-基础 常用操作以及概念快捷键 Tab: 命令和文件名补全； Ctrl+C: 中断正在运行的程序； Ctrl+D: 结束键盘输入(End Of File，EOF)  求助–help指令的基本用法与选项介绍。 manman 是 manual 的缩写，将指令的具体信息显示出来。 infoinfo 与 man 类似，但是 info 将文档分成一个个页面，每个页面可以进行跳转。 doc&#x2F;us">
<meta property="og:type" content="article">
<meta property="og:title" content="linux-基础">
<meta property="og:url" content="http://dreamcat.ink/2019/11/12/linux-ji-chu/index.html">
<meta property="og:site_name" content="Dreamcat">
<meta property="og:description" content="引言linux-基础 常用操作以及概念快捷键 Tab: 命令和文件名补全； Ctrl+C: 中断正在运行的程序； Ctrl+D: 结束键盘输入(End Of File，EOF)  求助–help指令的基本用法与选项介绍。 manman 是 manual 的缩写，将指令的具体信息显示出来。 infoinfo 与 man 类似，但是 info 将文档分成一个个页面，每个页面可以进行跳转。 doc&#x2F;us">
<meta property="og:locale" content="zh_CN">
<meta property="article:published_time" content="2019-11-12T07:23:30.000Z">
<meta property="article:modified_time" content="2020-10-29T15:49:29.359Z">
<meta property="article:author" content="买斯基">
<meta property="article:tag" content="linux">
<meta name="twitter:card" content="summary">
  <!-- Canonical links -->
  <link rel="canonical" href="http://dreamcat.ink/2019/11/12/linux-ji-chu/index.html">
  
    <link rel="alternate" href="/atom.xml" title="Dreamcat" type="application/atom+xml">
  
  
    <link rel="icon" href="/favicon.png" type="image/x-icon">
  
  
<link rel="stylesheet" href="/css/style.css">

  
  
  
  
<meta name="generator" content="Hexo 4.2.0"><link rel="stylesheet" href="/css/prism-tomorrow.css" type="text/css"></head>


<body class="main-center" itemscope itemtype="http://schema.org/WebPage">
  <header class="header" itemscope itemtype="http://schema.org/WPHeader">
  <div class="slimContent">
    <div class="navbar-header">
      
      
      <div class="profile-block text-center">
        <a id="avatar" href="https://github.com/DreamCats" target="_blank">
          <img class="img-circle img-rotate" src="/images/avatar.jpg" width="200" height="200">
        </a>
        <h2 id="name" class="hidden-xs hidden-sm">Dreamcat</h2>
        <h3 id="title" class="hidden-xs hidden-sm hidden-md">ドリームキャット</h3>
        <small id="location" class="text-muted hidden-xs hidden-sm"><i class="icon icon-map-marker"></i> Chengdu, China</small>
      </div>
      
      <div class="search" id="search-form-wrap">

    <form class="search-form sidebar-form">
        <div class="input-group">
            <input type="text" class="search-form-input form-control" placeholder="搜索" />
            <span class="input-group-btn">
                <button type="submit" class="search-form-submit btn btn-flat" onclick="return false;"><i class="icon icon-search"></i></button>
            </span>
        </div>
    </form>
    <div class="ins-search">
  <div class="ins-search-mask"></div>
  <div class="ins-search-container">
    <div class="ins-input-wrapper">
      <input type="text" class="ins-search-input" placeholder="想要查找什么..." x-webkit-speech />
      <button type="button" class="close ins-close ins-selectable" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
    </div>
    <div class="ins-section-wrapper">
      <div class="ins-section-container"></div>
    </div>
  </div>
</div>


</div>
      <button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target="#main-navbar" aria-controls="main-navbar" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
    </div>
    <nav id="main-navbar" class="collapse navbar-collapse" itemscope itemtype="http://schema.org/SiteNavigationElement" role="navigation">
      <ul class="nav navbar-nav main-nav ">
        
        
        <li class="menu-item menu-item-home">
          <a href="/.">
            
            <i class="icon icon-home-fill"></i>
            
            <span class="menu-title">首页</span>
          </a>
        </li>
        
        
        <li class="menu-item menu-item-archives">
          <a href="/archives">
            
            <i class="icon icon-archives-fill"></i>
            
            <span class="menu-title">归档</span>
          </a>
        </li>
        
        
        <li class="menu-item menu-item-categories">
          <a href="/categories">
            
            <i class="icon icon-folder"></i>
            
            <span class="menu-title">分类</span>
          </a>
        </li>
        
        
        <li class="menu-item menu-item-tags">
          <a href="/tags">
            
            <i class="icon icon-tags"></i>
            
            <span class="menu-title">标签</span>
          </a>
        </li>
        
        
        <li class="menu-item menu-item-links">
          <a href="/links">
            
            <i class="icon icon-friendship"></i>
            
            <span class="menu-title">友链</span>
          </a>
        </li>
        
        
        <li class="menu-item menu-item-about">
          <a href="/about">
            
            <i class="icon icon-cup-fill"></i>
            
            <span class="menu-title">关于</span>
          </a>
        </li>
        
      </ul>
      
	
    <ul class="social-links">
    	
        <li><a href="https://github.com/DreamCats" target="_blank" title="Github" data-toggle=tooltip data-placement=top><i class="icon icon-github"></i></a></li>
        
        <li><a href="https://github.com/DreamCats" target="_blank" title="Weibo" data-toggle=tooltip data-placement=top><i class="icon icon-weibo"></i></a></li>
        
        <li><a href="https://github.com/DreamCats" target="_blank" title="Twitter" data-toggle=tooltip data-placement=top><i class="icon icon-twitter"></i></a></li>
        
        <li><a href="https://github.com/DreamCats" target="_blank" title="Behance" data-toggle=tooltip data-placement=top><i class="icon icon-behance"></i></a></li>
        
        <li><a href="/atom.xml" target="_blank" title="Rss" data-toggle=tooltip data-placement=top><i class="icon icon-rss"></i></a></li>
        
    </ul>

    </nav>
  </div>
</header>

  
    <aside class="sidebar" itemscope itemtype="http://schema.org/WPSideBar">
  <div class="slimContent">
    
      <div class="widget">
    <h3 class="widget-title">公告</h3>
    <div class="widget-body">
        <div id="board">
            <div class="content">
                <p>dream!</p>
            </div>
        </div>
    </div>
</div>

    
      
  <div class="widget">
    <h3 class="widget-title">分类</h3>
    <div class="widget-body">
      <ul class="category-list"><li class="category-list-item"><a class="category-list-link" href="/categories/algorithm/">algorithm</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/db/">db</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/java/">java</a><span class="category-list-count">17</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/linux/">linux</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/spring/">spring</a><span class="category-list-count">9</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/vue/">vue</a><span class="category-list-count">2</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/web/">web</a><span class="category-list-count">2</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E5%B7%A5%E5%85%B7/">工具</a><span class="category-list-count">17</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E7%A7%8B%E6%8B%9B/">秋招</a><span class="category-list-count">11</span></li></ul>
    </div>
  </div>


    
      
  <div class="widget">
    <h3 class="widget-title">标签</h3>
    <div class="widget-body">
      <ul class="tag-list" itemprop="keywords"><li class="tag-list-item"><a class="tag-list-link" href="/tags/Dubbo/" rel="tag">Dubbo</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/MQ/" rel="tag">MQ</a><span class="tag-list-count">2</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/db/" rel="tag">db</a><span class="tag-list-count">3</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/dubbo/" rel="tag">dubbo</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/frp/" rel="tag">frp</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/github/" rel="tag">github</a><span class="tag-list-count">3</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/java/" rel="tag">java</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/java%E5%9F%BA%E7%A1%80/" rel="tag">java基础</a><span class="tag-list-count">2</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/java%E9%9B%86%E5%90%88/" rel="tag">java集合</a><span class="tag-list-count">11</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/jvm/" rel="tag">jvm</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/linux/" rel="tag">linux</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/mongodb/" rel="tag">mongodb</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/mybatis/" rel="tag">mybatis</a><span class="tag-list-count">2</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/nvm/" rel="tag">nvm</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/python/" rel="tag">python</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/redis/" rel="tag">redis</a><span class="tag-list-count">2</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/spring/" rel="tag">spring</a><span class="tag-list-count">9</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/ubuntu/" rel="tag">ubuntu</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/vscode/" rel="tag">vscode</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/vue/" rel="tag">vue</a><span class="tag-list-count">3</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/web/" rel="tag">web</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E5%A4%9A%E7%BA%BF%E7%A8%8B/" rel="tag">多线程</a><span class="tag-list-count">7</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E7%AE%97%E6%B3%95/" rel="tag">算法</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E7%BB%88%E7%AB%AF/" rel="tag">终端</a><span class="tag-list-count">2</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E8%99%9A%E6%8B%9F%E6%9C%BA/" rel="tag">虚拟机</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/" rel="tag">计算机网络</a><span class="tag-list-count">1</span></li></ul>
    </div>
  </div>


    
      
  <div class="widget">
    <h3 class="widget-title">标签云</h3>
    <div class="widget-body tagcloud">
      <a href="/tags/Dubbo/" style="font-size: 13px;">Dubbo</a> <a href="/tags/MQ/" style="font-size: 13.2px;">MQ</a> <a href="/tags/db/" style="font-size: 13.4px;">db</a> <a href="/tags/dubbo/" style="font-size: 13px;">dubbo</a> <a href="/tags/frp/" style="font-size: 13px;">frp</a> <a href="/tags/github/" style="font-size: 13.4px;">github</a> <a href="/tags/java/" style="font-size: 13px;">java</a> <a href="/tags/java%E5%9F%BA%E7%A1%80/" style="font-size: 13.2px;">java基础</a> <a href="/tags/java%E9%9B%86%E5%90%88/" style="font-size: 14px;">java集合</a> <a href="/tags/jvm/" style="font-size: 13px;">jvm</a> <a href="/tags/linux/" style="font-size: 13px;">linux</a> <a href="/tags/mongodb/" style="font-size: 13px;">mongodb</a> <a href="/tags/mybatis/" style="font-size: 13.2px;">mybatis</a> <a href="/tags/nvm/" style="font-size: 13px;">nvm</a> <a href="/tags/python/" style="font-size: 13px;">python</a> <a href="/tags/redis/" style="font-size: 13.2px;">redis</a> <a href="/tags/spring/" style="font-size: 13.8px;">spring</a> <a href="/tags/ubuntu/" style="font-size: 13px;">ubuntu</a> <a href="/tags/vscode/" style="font-size: 13px;">vscode</a> <a href="/tags/vue/" style="font-size: 13.4px;">vue</a> <a href="/tags/web/" style="font-size: 13px;">web</a> <a href="/tags/%E5%A4%9A%E7%BA%BF%E7%A8%8B/" style="font-size: 13.6px;">多线程</a> <a href="/tags/%E7%AE%97%E6%B3%95/" style="font-size: 13px;">算法</a> <a href="/tags/%E7%BB%88%E7%AB%AF/" style="font-size: 13.2px;">终端</a> <a href="/tags/%E8%99%9A%E6%8B%9F%E6%9C%BA/" style="font-size: 13px;">虚拟机</a> <a href="/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/" style="font-size: 13px;">计算机网络</a>
    </div>
  </div>

    
      
  <div class="widget">
    <h3 class="widget-title">归档</h3>
    <div class="widget-body">
      <ul class="archive-list"><li class="archive-list-item"><a class="archive-list-link" href="/archives/2020/04/">四月 2020</a><span class="archive-list-count">3</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2020/03/">三月 2020</a><span class="archive-list-count">8</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2020/02/">二月 2020</a><span class="archive-list-count">6</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2020/01/">一月 2020</a><span class="archive-list-count">2</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/12/">十二月 2019</a><span class="archive-list-count">3</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/11/">十一月 2019</a><span class="archive-list-count">5</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/10/">十月 2019</a><span class="archive-list-count">8</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/09/">九月 2019</a><span class="archive-list-count">5</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/08/">八月 2019</a><span class="archive-list-count">2</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/07/">七月 2019</a><span class="archive-list-count">7</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/06/">六月 2019</a><span class="archive-list-count">2</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/05/">五月 2019</a><span class="archive-list-count">9</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/03/">三月 2019</a><span class="archive-list-count">1</span></li></ul>
    </div>
  </div>


    
      
  <div class="widget">
    <h3 class="widget-title">最新文章</h3>
    <div class="widget-body">
      <ul class="recent-post-list list-unstyled no-thumbnail">
        
          <li>
            
            <div class="item-inner">
              <p class="item-category">
                <a class="category-link" href="/categories/%E7%A7%8B%E6%8B%9B/">秋招</a>
              </p>
              <p class="item-title">
                <a href="/2020/04/02/ge-ren-tu-xie-xi-lie-zong-jie-ji-suan-ji-wang-luo/" class="title">个人吐血系列-总结计算机网络</a>
              </p>
              <p class="item-date">
                <time datetime="2020-04-01T17:42:22.000Z" itemprop="datePublished">2020-04-02</time>
              </p>
            </div>
          </li>
          
          <li>
            
            <div class="item-inner">
              <p class="item-category">
                <a class="category-link" href="/categories/%E7%A7%8B%E6%8B%9B/">秋招</a>
              </p>
              <p class="item-title">
                <a href="/2020/04/01/ge-ren-tu-xie-xi-lie-zong-jie-rocketmq/" class="title">个人吐血系列-总结RocketMQ</a>
              </p>
              <p class="item-date">
                <time datetime="2020-04-01T04:42:56.000Z" itemprop="datePublished">2020-04-01</time>
              </p>
            </div>
          </li>
          
          <li>
            
            <div class="item-inner">
              <p class="item-category">
                <a class="category-link" href="/categories/%E7%A7%8B%E6%8B%9B/">秋招</a>
              </p>
              <p class="item-title">
                <a href="/2020/04/01/ge-ren-tu-xie-xi-lie-zong-jie-dubbo/" class="title">个人吐血系列-总结Dubbo</a>
              </p>
              <p class="item-date">
                <time datetime="2020-03-31T16:04:46.000Z" itemprop="datePublished">2020-04-01</time>
              </p>
            </div>
          </li>
          
          <li>
            
            <div class="item-inner">
              <p class="item-category">
                <a class="category-link" href="/categories/%E7%A7%8B%E6%8B%9B/">秋招</a>
              </p>
              <p class="item-title">
                <a href="/2020/03/31/ge-ren-tu-xie-xi-lie-zong-jie-redis/" class="title">个人吐血系列-总结Redis</a>
              </p>
              <p class="item-date">
                <time datetime="2020-03-31T13:59:25.000Z" itemprop="datePublished">2020-03-31</time>
              </p>
            </div>
          </li>
          
          <li>
            
            <div class="item-inner">
              <p class="item-category">
                <a class="category-link" href="/categories/%E7%A7%8B%E6%8B%9B/">秋招</a>
              </p>
              <p class="item-title">
                <a href="/2020/03/30/ge-ren-tu-xie-xi-lie-zong-jie-mysql/" class="title">个人吐血系列-总结Mysql</a>
              </p>
              <p class="item-date">
                <time datetime="2020-03-30T07:13:08.000Z" itemprop="datePublished">2020-03-30</time>
              </p>
            </div>
          </li>
          
      </ul>
    </div>
  </div>
  

    
  </div>
</aside>

  
  
<aside class="sidebar sidebar-toc collapse" id="collapseToc" itemscope itemtype="http://schema.org/WPSideBar">
  <div class="slimContent">
    <nav id="toc" class="article-toc">
      <h3 class="toc-title">文章目录</h3>
      <ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#引言"><span class="toc-number">1.</span> <span class="toc-text">引言</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#常用操作以及概念"><span class="toc-number">2.</span> <span class="toc-text">常用操作以及概念</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#快捷键"><span class="toc-number">2.1.</span> <span class="toc-text">快捷键</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#求助"><span class="toc-number">2.2.</span> <span class="toc-text">求助</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#–help"><span class="toc-number">2.2.1.</span> <span class="toc-text">–help</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#man"><span class="toc-number">2.2.2.</span> <span class="toc-text">man</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#info"><span class="toc-number">2.2.3.</span> <span class="toc-text">info</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#doc"><span class="toc-number">2.2.4.</span> <span class="toc-text">doc</span></a></li></ol></li><li class="toc-item toc-level-3"><a class="toc-link" href="#关机"><span class="toc-number">2.3.</span> <span class="toc-text">关机</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#who"><span class="toc-number">2.3.1.</span> <span class="toc-text">who</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#sync"><span class="toc-number">2.3.2.</span> <span class="toc-text">sync</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#shutdown"><span class="toc-number">2.3.3.</span> <span class="toc-text">shutdown</span></a></li></ol></li><li class="toc-item toc-level-3"><a class="toc-link" href="#PATH"><span class="toc-number">2.4.</span> <span class="toc-text">PATH</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#sudo"><span class="toc-number">2.5.</span> <span class="toc-text">sudo</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#包管理工具"><span class="toc-number">2.6.</span> <span class="toc-text">包管理工具</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#发行版"><span class="toc-number">2.7.</span> <span class="toc-text">发行版</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#VIM"><span class="toc-number">2.8.</span> <span class="toc-text">VIM</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#磁盘"><span class="toc-number">3.</span> <span class="toc-text">磁盘</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#磁盘接口"><span class="toc-number">3.1.</span> <span class="toc-text">磁盘接口</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#IDE"><span class="toc-number">3.1.1.</span> <span class="toc-text">IDE</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#SATA"><span class="toc-number">3.1.2.</span> <span class="toc-text">SATA</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#SCSI"><span class="toc-number">3.1.3.</span> <span class="toc-text">SCSI</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#SAS"><span class="toc-number">3.1.4.</span> <span class="toc-text">SAS</span></a></li></ol></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#分区"><span class="toc-number">4.</span> <span class="toc-text">分区</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#分区表"><span class="toc-number">4.1.</span> <span class="toc-text">分区表</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#MBR"><span class="toc-number">4.1.1.</span> <span class="toc-text">MBR</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#GPT"><span class="toc-number">4.1.2.</span> <span class="toc-text">GPT</span></a></li></ol></li><li class="toc-item toc-level-3"><a class="toc-link" href="#开机检测程序"><span class="toc-number">4.2.</span> <span class="toc-text">开机检测程序</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#BIOS"><span class="toc-number">4.2.1.</span> <span class="toc-text">BIOS</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#UEFI"><span class="toc-number">4.2.2.</span> <span class="toc-text">UEFI</span></a></li></ol></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#文件系统"><span class="toc-number">5.</span> <span class="toc-text">文件系统</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#分区与文件系统"><span class="toc-number">5.1.</span> <span class="toc-text">分区与文件系统</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#组成"><span class="toc-number">5.2.</span> <span class="toc-text">组成</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#文件读取"><span class="toc-number">5.3.</span> <span class="toc-text">文件读取</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#磁盘碎片"><span class="toc-number">5.4.</span> <span class="toc-text">磁盘碎片</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Block"><span class="toc-number">5.5.</span> <span class="toc-text">Block</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#inode"><span class="toc-number">5.6.</span> <span class="toc-text">inode</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#目录"><span class="toc-number">5.7.</span> <span class="toc-text">目录</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#日志"><span class="toc-number">5.8.</span> <span class="toc-text">日志</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#挂载"><span class="toc-number">5.9.</span> <span class="toc-text">挂载</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#目录配置"><span class="toc-number">5.10.</span> <span class="toc-text">目录配置</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#文件"><span class="toc-number">6.</span> <span class="toc-text">文件</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#文件属性"><span class="toc-number">6.1.</span> <span class="toc-text">文件属性</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#文件与目录的基本操作"><span class="toc-number">6.2.</span> <span class="toc-text">文件与目录的基本操作</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#ls"><span class="toc-number">6.2.1.</span> <span class="toc-text">ls</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#cd"><span class="toc-number">6.2.2.</span> <span class="toc-text">cd</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#mkdir"><span class="toc-number">6.2.3.</span> <span class="toc-text">mkdir</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#rmdir"><span class="toc-number">6.2.4.</span> <span class="toc-text">rmdir</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#touch"><span class="toc-number">6.2.5.</span> <span class="toc-text">touch</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#cp"><span class="toc-number">6.2.6.</span> <span class="toc-text">cp</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#rm"><span class="toc-number">6.2.7.</span> <span class="toc-text">rm</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#mv"><span class="toc-number">6.2.8.</span> <span class="toc-text">mv</span></a></li></ol></li><li class="toc-item toc-level-3"><a class="toc-link" href="#修改权限"><span class="toc-number">6.3.</span> <span class="toc-text">修改权限</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#文件默认权限"><span class="toc-number">6.4.</span> <span class="toc-text">文件默认权限</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#目录的权限"><span class="toc-number">6.5.</span> <span class="toc-text">目录的权限</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#链接"><span class="toc-number">6.6.</span> <span class="toc-text">链接</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#实体链接"><span class="toc-number">6.7.</span> <span class="toc-text">实体链接</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#符号链接"><span class="toc-number">6.8.</span> <span class="toc-text">符号链接</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#获取文件内容"><span class="toc-number">6.9.</span> <span class="toc-text">获取文件内容</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#cat"><span class="toc-number">6.9.1.</span> <span class="toc-text">cat</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#tac"><span class="toc-number">6.9.2.</span> <span class="toc-text">tac</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#more"><span class="toc-number">6.9.3.</span> <span class="toc-text">more</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#less"><span class="toc-number">6.9.4.</span> <span class="toc-text">less</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#head"><span class="toc-number">6.9.5.</span> <span class="toc-text">head</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#tail"><span class="toc-number">6.9.6.</span> <span class="toc-text">tail</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#od"><span class="toc-number">6.9.7.</span> <span class="toc-text">od</span></a></li></ol></li><li class="toc-item toc-level-3"><a class="toc-link" href="#指令与文件搜索"><span class="toc-number">6.10.</span> <span class="toc-text">指令与文件搜索</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#which"><span class="toc-number">6.10.1.</span> <span class="toc-text">which</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#whereis"><span class="toc-number">6.10.2.</span> <span class="toc-text">whereis</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#locate"><span class="toc-number">6.10.3.</span> <span class="toc-text">locate</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#find"><span class="toc-number">6.10.4.</span> <span class="toc-text">find</span></a></li></ol></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#压缩与打包"><span class="toc-number">7.</span> <span class="toc-text">压缩与打包</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#压缩文件名"><span class="toc-number">7.1.</span> <span class="toc-text">压缩文件名</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#gzip"><span class="toc-number">7.1.1.</span> <span class="toc-text">gzip</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#bzip2"><span class="toc-number">7.1.2.</span> <span class="toc-text">bzip2</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#xz"><span class="toc-number">7.1.3.</span> <span class="toc-text">xz</span></a></li></ol></li><li class="toc-item toc-level-3"><a class="toc-link" href="#打包"><span class="toc-number">7.2.</span> <span class="toc-text">打包</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#bash"><span class="toc-number">8.</span> <span class="toc-text">bash</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#特性"><span class="toc-number">8.1.</span> <span class="toc-text">特性</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#变量操作"><span class="toc-number">8.2.</span> <span class="toc-text">变量操作</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#正则"><span class="toc-number">9.</span> <span class="toc-text">正则</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#进程管理"><span class="toc-number">10.</span> <span class="toc-text">进程管理</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#查看进程"><span class="toc-number">10.1.</span> <span class="toc-text">查看进程</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#ps"><span class="toc-number">10.1.1.</span> <span class="toc-text">ps</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#top"><span class="toc-number">10.1.2.</span> <span class="toc-text">top</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#pstree"><span class="toc-number">10.1.3.</span> <span class="toc-text">pstree</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#netstat"><span class="toc-number">10.1.4.</span> <span class="toc-text">netstat</span></a></li></ol></li><li class="toc-item toc-level-3"><a class="toc-link" href="#孤儿进程"><span class="toc-number">10.2.</span> <span class="toc-text">孤儿进程</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#僵尸进程"><span class="toc-number">10.3.</span> <span class="toc-text">僵尸进程</span></a></li></ol></li></ol>
    </nav>
  </div>
</aside>

<main class="main" role="main">
  <div class="content">
  <article id="post-linux-基础" class="article article-type-post" itemscope itemtype="http://schema.org/BlogPosting">
    
    <div class="article-header">
      
        
  
    <h1 class="article-title" itemprop="name">
      linux-基础
    </h1>
  

      
      <div class="article-meta">
        <span class="article-date">
    <i class="icon icon-calendar-check"></i>
	<a href="/2019/11/12/linux-ji-chu/" class="article-date">
	  <time datetime="2019-11-12T07:23:30.000Z" itemprop="datePublished">2019-11-12</time>
	</a>
</span>
        
  <span class="article-category">
    <i class="icon icon-folder"></i>
    <a class="article-category-link" href="/categories/linux/">linux</a>
  </span>

        
  <span class="article-tag">
    <i class="icon icon-tags"></i>
	<a class="article-tag-link" href="/tags/linux/" rel="tag">linux</a>
  </span>


        

        <span class="post-comment"><i class="icon icon-comment"></i> <a href="/2019/11/12/linux-ji-chu/#comments" class="article-comment-link">评论</a></span>
        
	
		<span class="post-wordcount hidden-xs" itemprop="wordCount">字数统计: 6.2k(字)</span>
	
	
		<span class="post-readcount hidden-xs" itemprop="timeRequired">阅读时长: 23(分)</span>
	

      </div>
    </div>
    <div class="article-entry marked-body" itemprop="articleBody">
      
        <h2 id="引言"><a href="#引言" class="headerlink" title="引言"></a>引言</h2><p><strong>linux-基础</strong></p>
<h2 id="常用操作以及概念"><a href="#常用操作以及概念" class="headerlink" title="常用操作以及概念"></a>常用操作以及概念</h2><h3 id="快捷键"><a href="#快捷键" class="headerlink" title="快捷键"></a>快捷键</h3><ul>
<li>Tab: 命令和文件名补全；</li>
<li>Ctrl+C: 中断正在运行的程序；</li>
<li>Ctrl+D: 结束键盘输入(End Of File，EOF)</li>
</ul>
<h3 id="求助"><a href="#求助" class="headerlink" title="求助"></a>求助</h3><h4 id="–help"><a href="#–help" class="headerlink" title="–help"></a>–help</h4><p>指令的基本用法与选项介绍。</p>
<h4 id="man"><a href="#man" class="headerlink" title="man"></a>man</h4><p>man 是 manual 的缩写，将指令的具体信息显示出来。</p>
<h4 id="info"><a href="#info" class="headerlink" title="info"></a>info</h4><p>info 与 man 类似，但是 info 将文档分成一个个页面，每个页面可以进行跳转。</p>
<h4 id="doc"><a href="#doc" class="headerlink" title="doc"></a>doc</h4><p>/usr/share/doc 存放着软件的一整套说明文件。</p>
<h3 id="关机"><a href="#关机" class="headerlink" title="关机"></a>关机</h3><h4 id="who"><a href="#who" class="headerlink" title="who"></a>who</h4><p>在关机前需要先使用 who 命令查看有没有其它用户在线。</p>
<h4 id="sync"><a href="#sync" class="headerlink" title="sync"></a>sync</h4><p>为了加快对磁盘文件的读写速度，位于内存中的文件数据不会立即同步到磁盘上，因此关机之前需要先进行 sync 同步操作。</p>
<h4 id="shutdown"><a href="#shutdown" class="headerlink" title="shutdown"></a>shutdown</h4><pre class=" language-bash"><code class="language-bash"><span class="token comment" spellcheck="true">## shutdown [-krhc] 时间 [信息]</span>
-k <span class="token keyword">:</span>  不会关机，只是发送警告信息，通知所有在线的用户
-r <span class="token keyword">:</span>  将系统的服务停掉后就重新启动
-h <span class="token keyword">:</span>  将系统的服务停掉后就立即关机
-c <span class="token keyword">:</span>  取消已经在进行的 <span class="token function">shutdown</span> 指令内容</code></pre>
<h3 id="PATH"><a href="#PATH" class="headerlink" title="PATH"></a>PATH</h3><p>可以在环境变量 PATH 中声明可执行文件的路径，路径之间用 : 分隔。</p>
<p><code>/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/dmtsai/.local/bin:/home/dmtsai/bin</code></p>
<h3 id="sudo"><a href="#sudo" class="headerlink" title="sudo"></a>sudo</h3><p>sudo 允许一般用户使用 root 可执行的命令，不过只有在 /etc/sudoers 配置文件中添加的用户才能使用该指令.</p>
<h3 id="包管理工具"><a href="#包管理工具" class="headerlink" title="包管理工具"></a>包管理工具</h3><p>RPM 和 DPKG 为最常见的两类软件包管理工具:</p>
<ul>
<li>RPM 全称为 Redhat Package Manager，最早由 Red Hat 公司制定实施，随后被 GNU 开源操作系统接受并成为很多 Linux 系统 (RHEL) 的既定软件标准。</li>
<li>与 RPM 进行竞争的是基于 Debian 操作系统 (Ubuntu) 的 DEB 软件包管理工具 DPKG，全称为 Debian Package，功能方面与 RPM 相似。</li>
</ul>
<p>YUM 基于 RPM，具有依赖管理功能，并具有软件升级的功能。</p>
<h3 id="发行版"><a href="#发行版" class="headerlink" title="发行版"></a>发行版</h3><p>Linux 发行版是 Linux 内核及各种应用软件的集成版本。</p>
<table>
<thead>
<tr>
<th align="center">基于的包管理工具</th>
<th align="center">商业发行版</th>
<th align="center">社区发行版</th>
</tr>
</thead>
<tbody><tr>
<td align="center">RPM</td>
<td align="center">Red Hat</td>
<td align="center">Fedora / CentOS</td>
</tr>
<tr>
<td align="center">DPKG</td>
<td align="center">Ubuntu</td>
<td align="center">Debian</td>
</tr>
</tbody></table>
<h3 id="VIM"><a href="#VIM" class="headerlink" title="VIM"></a>VIM</h3><ul>
<li>一般指令模式(Command mode): VIM 的默认模式，可以用于移动游标查看内容；</li>
<li>编辑模式(Insert mode): 按下 “i” 等按键之后进入，可以对文本进行编辑；</li>
<li>指令列模式(Bottom-line mode): 按下 “:” 按键之后进入，用于保存退出等操作。</li>
</ul>
<p>在指令列模式下，有以下命令用于离开或者保存文件。</p>
<table>
<thead>
<tr>
<th align="center">命令</th>
<th align="center">作用</th>
</tr>
</thead>
<tbody><tr>
<td align="center">:w</td>
<td align="center">写入磁盘</td>
</tr>
<tr>
<td align="center">:w!</td>
<td align="center">当文件为只读时，强制写入磁盘。到底能不能写入，与用户对该文件的权限有关</td>
</tr>
<tr>
<td align="center">:q</td>
<td align="center">离开</td>
</tr>
<tr>
<td align="center">:q!</td>
<td align="center">强制离开不保存</td>
</tr>
<tr>
<td align="center">:wq</td>
<td align="center">写入磁盘后离开</td>
</tr>
<tr>
<td align="center">:wq!</td>
<td align="center">强制写入磁盘后离开</td>
</tr>
</tbody></table>
<h2 id="磁盘"><a href="#磁盘" class="headerlink" title="磁盘"></a>磁盘</h2><h3 id="磁盘接口"><a href="#磁盘接口" class="headerlink" title="磁盘接口"></a>磁盘接口</h3><h4 id="IDE"><a href="#IDE" class="headerlink" title="IDE"></a>IDE</h4><p>IDE(ATA)全称 Advanced Technology Attachment，接口速度最大为 133MB/s，因为并口线的抗干扰性太差，且排线占用空间较大，不利电脑内部散热，已逐渐被 SATA 所取代。</p>
<h4 id="SATA"><a href="#SATA" class="headerlink" title="SATA"></a>SATA</h4><p>SATA 全称 Serial ATA，也就是使用串口的 ATA 接口，抗干扰性强，且对数据线的长度要求比 ATA 低很多，支持热插拔等功能。SATA-II 的接口速度为 300MiB/s，而新的 SATA-III 标准可达到 600MiB/s 的传输速度。SATA 的数据线也比 ATA 的细得多，有利于机箱内的空气流通，整理线材也比较方便。</p>
<h4 id="SCSI"><a href="#SCSI" class="headerlink" title="SCSI"></a>SCSI</h4><p>SCSI 全称是 Small Computer System Interface(小型机系统接口)，经历多代的发展，从早期的 SCSI-II 到目前的 Ultra320 SCSI 以及 Fiber-Channel(光纤通道)，接口型式也多种多样。SCSI 硬盘广为工作站级个人电脑以及服务器所使用，因此会使用较为先进的技术，如碟片转速 15000rpm 的高转速，且传输时 CPU 占用率较低，但是单价也比相同容量的 ATA 及 SATA 硬盘更加昂贵。</p>
<h4 id="SAS"><a href="#SAS" class="headerlink" title="SAS"></a>SAS</h4><p>SAS(Serial Attached SCSI)是新一代的 SCSI 技术，和 SATA 硬盘相同，都是采取序列式技术以获得更高的传输速度，可达到 6Gb/s。此外也透过缩小连接线改善系统内部空间等。</p>
<h2 id="分区"><a href="#分区" class="headerlink" title="分区"></a>分区</h2><h3 id="分区表"><a href="#分区表" class="headerlink" title="分区表"></a>分区表</h3><p>磁盘分区表主要有两种格式，一种是限制较多的 MBR 分区表，一种是较新且限制较少的 GPT 分区表。</p>
<h4 id="MBR"><a href="#MBR" class="headerlink" title="MBR"></a>MBR</h4><p>MBR 中，第一个扇区最重要，里面有主要开机记录(Master boot record, MBR)及分区表(partition table)，其中主要开机记录占 446 bytes，分区表占 64 bytes。</p>
<p>分区表只有 64 bytes，最多只能存储 4 个分区，这 4 个分区为主分区(Primary)和扩展分区(Extended)。其中扩展分区只有一个，它使用其它扇区用记录额外的分区表，因此通过扩展分区可以分出更多分区，这些分区称为逻辑分区。</p>
<p>Linux 也把分区当成文件，分区文件的命名方式为: 磁盘文件名 + 编号，例如 /dev/sda1。注意，逻辑分区的编号从 5 开始。</p>
<h4 id="GPT"><a href="#GPT" class="headerlink" title="GPT"></a>GPT</h4><p>不同的磁盘有不同的扇区大小，例如 512 bytes 和最新磁盘的 4 k。GPT 为了兼容所有磁盘，在定义扇区上使用逻辑区块地址(Logical Block Address, LBA)，LBA 默认大小为 512 bytes。</p>
<p>GPT 第 1 个区块记录了主要开机记录(MBR)，紧接着是 33 个区块记录分区信息，并把最后的 33 个区块用于对分区信息进行备份。这 33 个区块第一个为 GPT 表头纪录，这个部份纪录了分区表本身的位置与大小和备份分区的位置，同时放置了分区表的校验码 (CRC32)，操作系统可以根据这个校验码来判断 GPT 是否正确。若有错误，可以使用备份分区进行恢复。</p>
<p>GPT 没有扩展分区概念，都是主分区，每个 LAB 可以分 4 个分区，因此总共可以分 4 * 32 = 128 个分区。</p>
<p>MBR 不支持 2.2 TB 以上的硬盘，GPT 则最多支持到 233 TB = 8 ZB。</p>
<h3 id="开机检测程序"><a href="#开机检测程序" class="headerlink" title="开机检测程序"></a>开机检测程序</h3><h4 id="BIOS"><a href="#BIOS" class="headerlink" title="BIOS"></a>BIOS</h4><p>BIOS(Basic Input/Output System，基本输入输出系统)，它是一个固件(嵌入在硬件中的软件)，BIOS 程序存放在断电后内容不会丢失的只读内存中。</p>
<p>BIOS 是开机的时候计算机执行的第一个程序，这个程序知道可以开机的磁盘，并读取磁盘第一个扇区的主要开机记录(MBR)，由主要开机记录(MBR)执行其中的开机管理程序，这个开机管理程序会加载操作系统的核心文件。</p>
<p>主要开机记录(MBR)中的开机管理程序提供以下功能: 选单、载入核心文件以及转交其它开机管理程序。转交这个功能可以用来实现了多重引导，只需要将另一个操作系统的开机管理程序安装在其它分区的启动扇区上，在启动开机管理程序时，就可以通过选单选择启动当前的操作系统或者转交给其它开机管理程序从而启动另一个操作系统。</p>
<p>下图中，第一扇区的主要开机记录(MBR)中的开机管理程序提供了两个选单: M1、M2，M1 指向了 Windows 操作系统，而 M2 指向其它分区的启动扇区，里面包含了另外一个开机管理程序，提供了一个指向 Linux 的选单。</p>
<p>安装多重引导，最好先安装 Windows 再安装 Linux。因为安装 Windows 时会覆盖掉主要开机记录(MBR)，而 Linux 可以选择将开机管理程序安装在主要开机记录(MBR)或者其它分区的启动扇区，并且可以设置开机管理程序的选单。</p>
<h4 id="UEFI"><a href="#UEFI" class="headerlink" title="UEFI"></a>UEFI</h4><p>BIOS 不可以读取 GPT 分区表，而 UEFI 可以。</p>
<h2 id="文件系统"><a href="#文件系统" class="headerlink" title="文件系统"></a>文件系统</h2><h3 id="分区与文件系统"><a href="#分区与文件系统" class="headerlink" title="分区与文件系统"></a>分区与文件系统</h3><p>对分区进行格式化是为了在分区上建立文件系统。一个分区通常只能格式化为一个文件系统，但是磁盘阵列等技术可以将一个分区格式化为多个文件系统。</p>
<h3 id="组成"><a href="#组成" class="headerlink" title="组成"></a>组成</h3><p>最主要的几个组成部分如下:</p>
<ul>
<li>inode: 一个文件占用一个 inode，记录文件的属性，同时记录此文件的内容所在的 block 编号；</li>
<li>block: 记录文件的内容，文件太大时，会占用多个 block。</li>
<li>superblock: 记录文件系统的整体信息，包括 inode 和 block 的总量、使用量、剩余量，以及文件系统的格式与相关信息等；</li>
<li>block bitmap: 记录 block 是否被使用的位域。</li>
</ul>
<h3 id="文件读取"><a href="#文件读取" class="headerlink" title="文件读取"></a>文件读取</h3><p>对于 Ext2 文件系统，当要读取一个文件的内容时，先在 inode 中去查找文件内容所在的所有 block，然后把所有 block 的内容读出来。</p>
<h3 id="磁盘碎片"><a href="#磁盘碎片" class="headerlink" title="磁盘碎片"></a>磁盘碎片</h3><p>指一个文件内容所在的 block 过于分散。</p>
<h3 id="Block"><a href="#Block" class="headerlink" title="Block"></a>Block</h3><p>在 Ext2 文件系统中所支持的 block 大小有 1K，2K 及 4K 三种，不同的大小限制了单个文件和文件系统的最大大小。</p>
<p>一个 block 只能被一个文件所使用，未使用的部分直接浪费了。因此如果需要存储大量的小文件，那么最好选用比较小的 block。</p>
<h3 id="inode"><a href="#inode" class="headerlink" title="inode"></a>inode</h3><p>inode 具体包含以下信息:</p>
<ul>
<li>权限 (read/write/excute)；</li>
<li>拥有者与群组 (owner/group)；</li>
<li>容量；</li>
<li>建立或状态改变的时间 (ctime)；</li>
<li>最近一次的读取时间 (atime)；</li>
<li>最近修改的时间 (mtime)；</li>
<li>定义文件特性的旗标 (flag)，如 SetUID…；</li>
<li>该文件真正内容的指向 (pointer)。</li>
</ul>
<p>inode 具有以下特点:</p>
<ul>
<li>每个 inode 大小均固定为 128 bytes (新的 ext4 与 xfs 可设定到 256 bytes)；</li>
<li>每个文件都仅会占用一个 inode。</li>
</ul>
<p>inode 中记录了文件内容所在的 block 编号，但是每个 block 非常小，一个大文件随便都需要几十万的 block。而一个 inode 大小有限，无法直接引用这么多 block 编号。因此引入了间接、双间接、三间接引用。间接引用是指，让 inode 记录的引用 block 块记录引用信息。</p>
<h3 id="目录"><a href="#目录" class="headerlink" title="目录"></a>目录</h3><p>建立一个目录时，会分配一个 inode 与至少一个 block。block 记录的内容是目录下所有文件的 inode 编号以及文件名。</p>
<p>可以看出文件的 inode 本身不记录文件名，文件名记录在目录中，因此新增文件、删除文件、更改文件名这些操作与目录的 w 权限有关。</p>
<h3 id="日志"><a href="#日志" class="headerlink" title="日志"></a>日志</h3><p>如果突然断电，那么文件系统会发生错误，例如断电前只修改了 block bitmap，而还没有将数据真正写入 block 中。</p>
<p>ext3/ext4 文件系统引入了日志功能，可以利用日志来修复文件系统。</p>
<h3 id="挂载"><a href="#挂载" class="headerlink" title="挂载"></a>挂载</h3><p>挂载利用目录作为文件系统的进入点，也就是说，进入目录之后就可以读取文件系统的数据。</p>
<h3 id="目录配置"><a href="#目录配置" class="headerlink" title="目录配置"></a>目录配置</h3><p>为了使不同 Linux 发行版本的目录结构保持一致性，Filesystem Hierarchy Standard (FHS) 规定了 Linux 的目录结构。最基础的三个目录如下:</p>
<ul>
<li>/ (root, 根目录)</li>
<li>/usr (unix software resource): 所有系统默认软件都会安装到这个目录；</li>
<li>/var (variable): 存放系统或程序运行过程中的数据文件。</li>
</ul>
<h2 id="文件"><a href="#文件" class="headerlink" title="文件"></a>文件</h2><h3 id="文件属性"><a href="#文件属性" class="headerlink" title="文件属性"></a>文件属性</h3><p>用户分为三种: 文件拥有者、群组以及其它人，对不同的用户有不同的文件权限。</p>
<p>使用 ls 查看一个文件时，会显示一个文件的信息，例如 <code>drwxr-xr-x. 3 root root 17 May 6 00:14 .config</code>，对这个信息的解释如下:</p>
<ul>
<li>drwxr-xr-x: 文件类型以及权限，第 1 位为文件类型字段，后 9 位为文件权限字段</li>
<li>3: 链接数</li>
<li>root: 文件拥有者</li>
<li>root: 所属群组</li>
<li>17: 文件大小</li>
<li>May 6 00:14: 文件最后被修改的时间</li>
<li>.config: 文件名</li>
</ul>
<p>常见的文件类型及其含义有:</p>
<ul>
<li>d: 目录</li>
<li>-: 文件</li>
<li>l: 链接文件</li>
</ul>
<p>9 位的文件权限字段中，每 3 个为一组，共 3 组，每一组分别代表对文件拥有者、所属群组以及其它人的文件权限。一组权限中的 3 位分别为 r、w、x 权限，表示可读、可写、可执行。</p>
<p>文件时间有以下三种:</p>
<ul>
<li>modification time (mtime): 文件的内容更新就会更新；</li>
<li>status time (ctime): 文件的状态(权限、属性)更新就会更新；</li>
<li>access time (atime): 读取文件时就会更新。</li>
</ul>
<h3 id="文件与目录的基本操作"><a href="#文件与目录的基本操作" class="headerlink" title="文件与目录的基本操作"></a>文件与目录的基本操作</h3><h4 id="ls"><a href="#ls" class="headerlink" title="ls"></a>ls</h4><p>列出文件或者目录的信息，目录的信息就是其中包含的文件。</p>
<pre class=" language-bash"><code class="language-bash"><span class="token comment" spellcheck="true">## ls [-aAdfFhilnrRSt] file|dir</span>
-a <span class="token keyword">:</span> 列出全部的文件
-d <span class="token keyword">:</span> 仅列出目录本身
-l <span class="token keyword">:</span> 以长数据串行列出，包含文件的属性与权限等等数据
</code></pre>
<h4 id="cd"><a href="#cd" class="headerlink" title="cd"></a>cd</h4><p>更新当前目录</p>
<p><code>cd [相对路径或者绝对路径]</code></p>
<h4 id="mkdir"><a href="#mkdir" class="headerlink" title="mkdir"></a>mkdir</h4><p>创建目录</p>
<pre class=" language-bash"><code class="language-bash"><span class="token comment" spellcheck="true">## mkdir [-mp] 目录名称</span>
-m <span class="token keyword">:</span> 配置目录权限
-p <span class="token keyword">:</span> 递归创建目录</code></pre>
<h4 id="rmdir"><a href="#rmdir" class="headerlink" title="rmdir"></a>rmdir</h4><p>删除目录，目录必须为空</p>
<pre class=" language-bash"><code class="language-bash"><span class="token function">rmdir</span> <span class="token punctuation">[</span>-p<span class="token punctuation">]</span> 目录名称
-p <span class="token keyword">:</span> 递归删除目录</code></pre>
<h4 id="touch"><a href="#touch" class="headerlink" title="touch"></a>touch</h4><p>更新文件时间或者建立新文件</p>
<pre class=" language-bash"><code class="language-bash"><span class="token comment" spellcheck="true">## touch [-acdmt] filename</span>
-a <span class="token keyword">:</span>  更新 atime
-c <span class="token keyword">:</span>  更新 ctime，若该文件不存在则不建立新文件
-m <span class="token keyword">:</span>  更新 mtime
-d <span class="token keyword">:</span>  后面可以接更新日期而不使用当前日期，也可以使用 --date<span class="token operator">=</span><span class="token string">"日期或时间"</span>
-t <span class="token keyword">:</span>  后面可以接更新时间而不使用当前时间，格式为<span class="token punctuation">[</span>YYYYMMDDhhmm<span class="token punctuation">]</span>
</code></pre>
<h4 id="cp"><a href="#cp" class="headerlink" title="cp"></a>cp</h4><p>复制文件</p>
<p>如果源文件有两个以上，则目的文件一定要是目录才行。</p>
<pre class=" language-bash"><code class="language-bash"><span class="token function">cp</span> <span class="token punctuation">[</span>-adfilprsu<span class="token punctuation">]</span> <span class="token function">source</span> destination
-a <span class="token keyword">:</span> 相当于 -dr --preserve<span class="token operator">=</span>all 的意思，至于 dr 请参考下列说明
-d <span class="token keyword">:</span> 若来源文件为链接文件，则复制链接文件属性而非文件本身
-i <span class="token keyword">:</span> 若目标文件已经存在时，在覆盖前会先询问
-p <span class="token keyword">:</span> 连同文件的属性一起复制过去
-r <span class="token keyword">:</span> 递归持续复制
-u <span class="token keyword">:</span> destination 比 <span class="token function">source</span> 旧才更新 destination，或 destination 不存在的情况下才复制
--preserve<span class="token operator">=</span>all <span class="token keyword">:</span> 除了 -p 的权限相关参数外，还加入 SELinux 的属性, links, xattr 等也复制了
</code></pre>
<h4 id="rm"><a href="#rm" class="headerlink" title="rm"></a>rm</h4><p>删除文件</p>
<pre class=" language-bash"><code class="language-bash"><span class="token comment" spellcheck="true">## rm [-fir] 文件或目录</span>
-r <span class="token keyword">:</span> 递归删除</code></pre>
<h4 id="mv"><a href="#mv" class="headerlink" title="mv"></a>mv</h4><p>移动文件</p>
<pre class=" language-bash"><code class="language-bash"><span class="token comment" spellcheck="true">## mv [-fiu] source destination</span>
<span class="token comment" spellcheck="true">## mv [options] source1 source2 source3 .... directory</span>
-f <span class="token keyword">:</span>  force 强制的意思，如果目标文件已经存在，不会询问而直接覆盖</code></pre>
<h3 id="修改权限"><a href="#修改权限" class="headerlink" title="修改权限"></a>修改权限</h3><p>可以将一组权限用数字来表示，此时一组权限的 3 个位当做二进制数字的位，从左到右每个位的权值为 4、2、1，即每个权限对应的数字权值为 r : 4、w : 2、x : 1。</p>
<p><code>## chmod [-R] xyz dirname/filename</code></p>
<p>示例: 将 .bashrc 文件的权限修改为 -rwxr-xr–。</p>
<p><code>## chmod 754 .bashrc</code></p>
<p>也可以使用符号来设定权限。</p>
<pre class=" language-bash"><code class="language-bash"><span class="token comment" spellcheck="true">## chmod [ugoa]  [+-=] [rwx] dirname/filename</span>
- u: 拥有者
- g: 所属群组
- o: 其他人
- a: 所有人
- +: 添加权限
- -: 移除权限
- <span class="token operator">=</span>: 设定权限</code></pre>
<p>示例: 为 .bashrc 文件的所有用户添加写权限。</p>
<p><code>## chmod a+w .bashrc</code></p>
<h3 id="文件默认权限"><a href="#文件默认权限" class="headerlink" title="文件默认权限"></a>文件默认权限</h3><ul>
<li>文件默认权限: 文件默认没有可执行权限，因此为 666，也就是 -rw-rw-rw- 。</li>
<li>目录默认权限: 目录必须要能够进入，也就是必须拥有可执行权限，因此为 777 ，也就是 drwxrwxrwx。</li>
</ul>
<p>可以通过 umask 设置或者查看文件的默认权限，通常以掩码的形式来表示，例如 002 表示其它用户的权限去除了一个 2 的权限，也就是写权限，因此建立新文件时默认的权限为 -rw-rw-r–。</p>
<h3 id="目录的权限"><a href="#目录的权限" class="headerlink" title="目录的权限"></a>目录的权限</h3><p>文件名不是存储在一个文件的内容中，而是存储在一个文件所在的目录中。因此，拥有文件的 w 权限并不能对文件名进行修改。</p>
<p>目录存储文件列表，一个目录的权限也就是对其文件列表的权限。因此，目录的 r 权限表示可以读取文件列表；w 权限表示可以修改文件列表，具体来说，就是添加删除文件，对文件名进行修改；x 权限可以让该目录成为工作目录，x 权限是 r 和 w 权限的基础，如果不能使一个目录成为工作目录，也就没办法读取文件列表以及对文件列表进行修改了。</p>
<h3 id="链接"><a href="#链接" class="headerlink" title="链接"></a>链接</h3><pre class=" language-bash"><code class="language-bash"><span class="token comment" spellcheck="true">## ln [-sf] source_filename dist_filename</span>
-s <span class="token keyword">:</span> 默认是 hard link，加 -s 为 symbolic <span class="token function">link</span>
-f <span class="token keyword">:</span> 如果目标文件存在时，先删除目标文件</code></pre>
<h3 id="实体链接"><a href="#实体链接" class="headerlink" title="实体链接"></a>实体链接</h3><p>在目录下创建一个条目，记录着文件名与 inode 编号，这个 inode 就是源文件的 inode。</p>
<p>删除任意一个条目，文件还是存在，只要引用数量不为 0。</p>
<p>有以下限制: 不能跨越文件系统、不能对目录进行链接。</p>
<pre class=" language-bash"><code class="language-bash"><span class="token comment" spellcheck="true">## ln /etc/crontab .</span>
<span class="token comment" spellcheck="true">## ll -i /etc/crontab crontab</span>
34474855 -rw-r--r--. 2 root root 451 Jun 10 2014 <span class="token function">crontab</span>
34474855 -rw-r--r--. 2 root root 451 Jun 10 2014 /etc/crontab</code></pre>
<h3 id="符号链接"><a href="#符号链接" class="headerlink" title="符号链接"></a>符号链接</h3><p>符号链接文件保存着源文件所在的绝对路径，在读取时会定位到源文件上，可以理解为 Windows 的快捷方式。</p>
<p>当源文件被删除了，链接文件就打不开了。</p>
<p>可以为目录建立链接。</p>
<pre class=" language-bash"><code class="language-bash"><span class="token comment" spellcheck="true">## ll -i /etc/crontab /root/crontab2</span>
34474855 -rw-r--r--. 2 root root 451 Jun 10 2014 /etc/crontab
53745909 lrwxrwxrwx. 1 root root 12 Jun 23 22:31 /root/crontab2 -<span class="token operator">></span> /etc/crontab</code></pre>
<h3 id="获取文件内容"><a href="#获取文件内容" class="headerlink" title="获取文件内容"></a>获取文件内容</h3><h4 id="cat"><a href="#cat" class="headerlink" title="cat"></a>cat</h4><p>取得文件内容。</p>
<pre class=" language-bash"><code class="language-bash"><span class="token comment" spellcheck="true">## cat [-AbEnTv] filename</span>
-n <span class="token keyword">:</span> 打印出行号，连同空白行也会有行号，-b 不会</code></pre>
<h4 id="tac"><a href="#tac" class="headerlink" title="tac"></a>tac</h4><p>是 cat 的反向操作，从最后一行开始打印。</p>
<h4 id="more"><a href="#more" class="headerlink" title="more"></a>more</h4><p>和 cat 不同的是它可以一页一页查看文件内容，比较适合大文件的查看。</p>
<h4 id="less"><a href="#less" class="headerlink" title="less"></a>less</h4><p>和 more 类似，但是多了一个向前翻页的功能。</p>
<h4 id="head"><a href="#head" class="headerlink" title="head"></a>head</h4><p>取得文件前几行。</p>
<pre class=" language-bash"><code class="language-bash"><span class="token comment" spellcheck="true">## head [-n number] filename</span>
-n <span class="token keyword">:</span> 后面接数字，代表显示几行的意思</code></pre>
<h4 id="tail"><a href="#tail" class="headerlink" title="tail"></a>tail</h4><p>是head的反向操作，之水取得是后几行</p>
<h4 id="od"><a href="#od" class="headerlink" title="od"></a>od</h4><p>以字符或者十六进制的形式显示二进制文件。</p>
<h3 id="指令与文件搜索"><a href="#指令与文件搜索" class="headerlink" title="指令与文件搜索"></a>指令与文件搜索</h3><h4 id="which"><a href="#which" class="headerlink" title="which"></a>which</h4><p>指令搜索</p>
<pre class=" language-bash"><code class="language-bash"><span class="token comment" spellcheck="true">## which [-a] command</span>
-a <span class="token keyword">:</span> 将所有指令列出，而不是只列第一个</code></pre>
<h4 id="whereis"><a href="#whereis" class="headerlink" title="whereis"></a>whereis</h4><p>文件搜索。速度比较快，因为它只搜索几个特定的目录。</p>
<pre class=" language-bash"><code class="language-bash"><span class="token comment" spellcheck="true">## whereis [-bmsu] dirname/filename</span></code></pre>
<h4 id="locate"><a href="#locate" class="headerlink" title="locate"></a>locate</h4><p>文件搜索。可以用关键字或者正则表达式进行搜索。</p>
<p>locate 使用 /var/lib/mlocate/ 这个数据库来进行搜索，它存储在内存中，并且每天更新一次，所以无法用 locate 搜索新建的文件。可以使用 updatedb 来立即更新数据库。</p>
<pre class=" language-bash"><code class="language-bash"><span class="token comment" spellcheck="true">## locate [-ir] keyword</span>
-r: 正则表达式</code></pre>
<h4 id="find"><a href="#find" class="headerlink" title="find"></a>find</h4><p>文件搜索。可以使用文件的属性和权限进行搜索。</p>
<pre class=" language-bash"><code class="language-bash"><span class="token comment" spellcheck="true">## find [basedir] [option]</span>
example: <span class="token function">find</span> <span class="token keyword">.</span> -name <span class="token string">"shadow*"</span></code></pre>
<h2 id="压缩与打包"><a href="#压缩与打包" class="headerlink" title="压缩与打包"></a>压缩与打包</h2><h3 id="压缩文件名"><a href="#压缩文件名" class="headerlink" title="压缩文件名"></a>压缩文件名</h3><h4 id="gzip"><a href="#gzip" class="headerlink" title="gzip"></a>gzip</h4><p>gzip 是 Linux 使用最广的压缩指令，可以解开 compress、zip 与 gzip 所压缩的文件。</p>
<p>经过 gzip 压缩过，源文件就不存在了。</p>
<p>有 9 个不同的压缩等级可以使用。</p>
<p>可以使用 zcat、zmore、zless 来读取压缩文件的内容。</p>
<pre class=" language-bash"><code class="language-bash">$ <span class="token function">gzip</span> <span class="token punctuation">[</span>-cdtv<span class="token comment" spellcheck="true">#] filename</span>
-c <span class="token keyword">:</span> 将压缩的数据输出到屏幕上
-d <span class="token keyword">:</span> 解压缩
-t <span class="token keyword">:</span> 检验压缩文件是否出错
-v <span class="token keyword">:</span> 显示压缩比等信息
-<span class="token comment" spellcheck="true">## :  ## 为数字的意思，代表压缩等级，数字越大压缩比越高，默认为 6</span></code></pre>
<h4 id="bzip2"><a href="#bzip2" class="headerlink" title="bzip2"></a>bzip2</h4><p>提供比 gzip 更高的压缩比。</p>
<p>查看命令: bzcat、bzmore、bzless、bzgrep。</p>
<h4 id="xz"><a href="#xz" class="headerlink" title="xz"></a>xz</h4><p>提供比 bzip2 更佳的压缩比。</p>
<p>可以看到，gzip、bzip2、xz 的压缩比不断优化。不过要注意的是，压缩比越高，压缩的时间也越长。</p>
<p>查看命令: xzcat、xzmore、xzless、xzgrep。</p>
<h3 id="打包"><a href="#打包" class="headerlink" title="打包"></a>打包</h3><p>压缩指令只能对一个文件进行压缩，而打包能够将多个文件打包成一个大文件。tar 不仅可以用于打包，也可以使用 gip、bzip2、xz 将打包文件进行压缩。</p>
<pre class=" language-bash"><code class="language-bash">$ <span class="token function">tar</span> <span class="token punctuation">[</span>-z<span class="token operator">|</span>-j<span class="token operator">|</span>-J<span class="token punctuation">]</span> <span class="token punctuation">[</span>cv<span class="token punctuation">]</span> <span class="token punctuation">[</span>-f 新建的 <span class="token function">tar</span> 文件<span class="token punctuation">]</span> filename<span class="token punctuation">..</span>.  <span class="token operator">==</span>打包压缩
$ <span class="token function">tar</span> <span class="token punctuation">[</span>-z<span class="token operator">|</span>-j<span class="token operator">|</span>-J<span class="token punctuation">]</span> <span class="token punctuation">[</span>tv<span class="token punctuation">]</span> <span class="token punctuation">[</span>-f 已有的 <span class="token function">tar</span> 文件<span class="token punctuation">]</span>              <span class="token operator">==</span>查看
$ <span class="token function">tar</span> <span class="token punctuation">[</span>-z<span class="token operator">|</span>-j<span class="token operator">|</span>-J<span class="token punctuation">]</span> <span class="token punctuation">[</span>xv<span class="token punctuation">]</span> <span class="token punctuation">[</span>-f 已有的 <span class="token function">tar</span> 文件<span class="token punctuation">]</span> <span class="token punctuation">[</span>-C 目录<span class="token punctuation">]</span>    <span class="token operator">==</span>解压缩
-z <span class="token keyword">:</span> 使用 zip；
-j <span class="token keyword">:</span> 使用 bzip2；
-J <span class="token keyword">:</span> 使用 xz；
-c <span class="token keyword">:</span> 新建打包文件；
-t <span class="token keyword">:</span> 查看打包文件里面有哪些文件；
-x <span class="token keyword">:</span> 解打包或解压缩的功能；
-v <span class="token keyword">:</span> 在压缩/解压缩的过程中，显示正在处理的文件名；
-f <span class="token keyword">:</span> filename: 要处理的文件；
-C 目录 <span class="token keyword">:</span>  在特定目录解压缩。</code></pre>
<table>
<thead>
<tr>
<th align="center">使用方式</th>
<th>命令</th>
</tr>
</thead>
<tbody><tr>
<td align="center">打包压缩</td>
<td>tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称</td>
</tr>
<tr>
<td align="center">查 看</td>
<td>tar -jtv -f filename.tar.bz2</td>
</tr>
<tr>
<td align="center">解压缩</td>
<td>tar -jxv -f filename.tar.bz2 -C 要解压缩的目录</td>
</tr>
</tbody></table>
<h2 id="bash"><a href="#bash" class="headerlink" title="bash"></a>bash</h2><p>可以通过 Shell 请求内核提供服务，Bash 正是 Shell 的一种。</p>
<h3 id="特性"><a href="#特性" class="headerlink" title="特性"></a>特性</h3><ul>
<li>命令历史：记录使用过的命令</li>
<li>命令与文件补全：快捷键：tab</li>
<li>shell scripts</li>
<li>通配符: 例如 ls -l /usr/bin/X* 列出 /usr/bin 下面所有以 X 开头的文件</li>
</ul>
<h3 id="变量操作"><a href="#变量操作" class="headerlink" title="变量操作"></a>变量操作</h3><p>对一个变量赋值直接使用 =。</p>
<p>对变量取用需要在变量前加上 $ ，也可以用 ${} 的形式；</p>
<p>输出变量使用 echo 命令。</p>
<pre class=" language-bash"><code class="language-bash">$ x<span class="token operator">=</span>abc
$ <span class="token keyword">echo</span> <span class="token variable">$x</span>
$ <span class="token keyword">echo</span> <span class="token variable">${x}</span></code></pre>
<p>变量内容如果有空格，必须使用双引号或者单引号。</p>
<ul>
<li>双引号内的特殊字符可以保留原本特性，例如 x=”lang is $LANG”，则 x 的值为 lang is zh_TW.UTF-8；</li>
<li>单引号内的特殊字符就是特殊字符本身，例如 x=’lang is $LANG’，则 x 的值为 lang is $LANG。</li>
</ul>
<p>可以使用 <code>指令</code> 或者 $(指令) 的方式将指令的执行结果赋值给变量。例如 version=$(uname -r)，则 version 的值为 4.15.0-22-generic。</p>
<p>可以使用 <code>指令</code> 或者 $(指令) 的方式将指令的执行结果赋值给变量。例如 version=$(uname -r)，则 version 的值为 4.15.0-22-generic。</p>
<p>Bash 的变量可以声明为数组和整数数字。注意数字类型没有浮点数。如果不进行声明，默认是字符串类型。变量的声明使用 declare 命令:</p>
<pre class=" language-bash"><code class="language-bash">$ <span class="token keyword">declare</span> <span class="token punctuation">[</span>-aixr<span class="token punctuation">]</span> variable
-a <span class="token keyword">:</span>  定义为数组类型
-i <span class="token keyword">:</span>  定义为整数类型
-x <span class="token keyword">:</span>  定义为环境变量
-r <span class="token keyword">:</span>  定义为 <span class="token function">readonly</span> 类型</code></pre>
<p>对数组操作</p>
<pre class=" language-bash"><code class="language-bash">$ array<span class="token punctuation">[</span>1<span class="token punctuation">]</span><span class="token operator">=</span>a
$ array<span class="token punctuation">[</span>2<span class="token punctuation">]</span><span class="token operator">=</span>b
$ <span class="token keyword">echo</span> <span class="token variable">${array[1]}</span></code></pre>
<h2 id="正则"><a href="#正则" class="headerlink" title="正则"></a>正则</h2><p>g/re/p(globally search a regular expression and print)，使用正则表示式进行全局查找并打印。</p>
<pre class=" language-bash"><code class="language-bash">$ <span class="token function">grep</span> <span class="token punctuation">[</span>-acinv<span class="token punctuation">]</span> <span class="token punctuation">[</span>--color<span class="token operator">=</span>auto<span class="token punctuation">]</span> 搜寻字符串 filename
-c <span class="token keyword">:</span>  统计个数
-i <span class="token keyword">:</span>  忽略大小写
-n <span class="token keyword">:</span>  输出行号
-v <span class="token keyword">:</span>  反向选择，也就是显示出没有 搜寻字符串 内容的那一行
--color<span class="token operator">=</span>auto <span class="token keyword">:</span> 找到的关键字加颜色显示</code></pre>
<p>示例: 把含有 the 字符串的行提取出来(注意默认会有 –color=auto 选项，因此以下内容在 Linux 中有颜色显示 the 字符串)</p>
<pre class=" language-bash"><code class="language-bash">$ <span class="token function">grep</span> -n <span class="token string">'the'</span> regular_express.txt
8:I can<span class="token string">'t finish the test.
12:the symbol '</span>*' is represented as start.
15:You are the best is mean you are the no. 1.
16:The world Happy is the same with <span class="token string">"glad"</span><span class="token keyword">.</span>
18:google is the best tools <span class="token keyword">for</span> search keyword</code></pre>
<h2 id="进程管理"><a href="#进程管理" class="headerlink" title="进程管理"></a>进程管理</h2><h3 id="查看进程"><a href="#查看进程" class="headerlink" title="查看进程"></a>查看进程</h3><h4 id="ps"><a href="#ps" class="headerlink" title="ps"></a>ps</h4><p>查看某个时间点的进程信息</p>
<p>示例一: 查看自己的进程<code>ps -l</code></p>
<p>示例二: 查看系统所有进程<code>ps aux</code></p>
<p>示例三: 查看特定的进程<code>ps aux | grep python</code></p>
<h4 id="top"><a href="#top" class="headerlink" title="top"></a>top</h4><p>实时显示进程信息</p>
<p>示例: 两秒钟刷新一次<code>top -d 2</code></p>
<h4 id="pstree"><a href="#pstree" class="headerlink" title="pstree"></a>pstree</h4><p>查看进程树</p>
<p>示例: 查看所有进程树<code>pstree -A</code></p>
<h4 id="netstat"><a href="#netstat" class="headerlink" title="netstat"></a>netstat</h4><p>查看占用端口的进程</p>
<p>示例: 查看特定端口的进程<code>netstat -anp | grep port</code></p>
<h3 id="孤儿进程"><a href="#孤儿进程" class="headerlink" title="孤儿进程"></a>孤儿进程</h3><p>一个父进程退出，而它的一个或多个子进程还在运行，那么这些子进程将成为孤儿进程。</p>
<p>孤儿进程将被init进程（进程号为1）所收养，并有init进程对它们完成状态收集工作。</p>
<p>由于孤儿进程会被init进程收养，所以孤儿进程不会对系统造成危害。</p>
<h3 id="僵尸进程"><a href="#僵尸进程" class="headerlink" title="僵尸进程"></a>僵尸进程</h3><p>一个子进程的进程描述符在子进程退出时不会释放，只有当父进程通过wait()或者waitpid()获取了子进程信息后才会释放。如果子进程退出，而父进程并没有调用wait()或waitpid()，那么子进程的进程描述符仍然保存在系统中，这种进程称之为僵尸进程。</p>
<p>僵尸进程通过 ps 命令显示出来的状态为 Z(zombie)。</p>
<p>系统所能使用的进程号是有限的，如果产生大量僵尸进程，将因为没有可用的进程号而导致系统不能产生新的进程。</p>
<p>要消灭系统中大量的僵尸进程，只需要将其父进程杀死，此时僵尸进程就会变成孤儿进程，从而被 init 所收养，这样 init 就会释放所有的僵尸进程所占有的资源，从而结束僵尸进程。</p>

      
    </div>
    <div class="article-footer">
      <blockquote class="mt-2x">
  <ul class="post-copyright list-unstyled">
    
    <li class="post-copyright-link hidden-xs">
      <strong>本文链接：</strong>
      <a href="http://dreamcat.ink/2019/11/12/linux-ji-chu/" title="linux-基础" target="_blank" rel="external">http://dreamcat.ink/2019/11/12/linux-ji-chu/</a>
    </li>
    
    <li class="post-copyright-license">
      <strong>版权声明： </strong> 本博客所有文章除特别声明外，均采用 <a href="http://creativecommons.org/licenses/by/4.0/deed.zh" target="_blank" rel="external">CC BY 4.0 CN协议</a> 许可协议。转载请注明出处！
    </li>
  </ul>
</blockquote>


<div class="panel panel-default panel-badger">
  <div class="panel-body">
    <figure class="media">
      <div class="media-left">
        <a href="https://github.com/DreamCats" target="_blank" class="img-burn thumb-sm visible-lg">
          <img src="/images/avatar.jpg" class="img-rounded w-full" alt="">
        </a>
      </div>
      <div class="media-body">
        <h3 class="media-heading"><a href="https://github.com/DreamCats" target="_blank"><span class="text-dark">Dreamcat</span><small class="ml-1x">ドリームキャット</small></a></h3>
        <div>个人简介。</div>
      </div>
    </figure>
  </div>
</div>


    </div>
  </article>
  
    
  <section id="comments">
  	
      <div id="vcomments"></div>
    
  </section>


  
</div>

  <nav class="bar bar-footer clearfix" data-stick-bottom>
  <div class="bar-inner">
  
  <ul class="pager pull-left">
    
    <li class="prev">
      <a href="/2019/11/17/hashmap-concurrenthashmap-mian-shi-bi-wen/" title="HashMap &amp; ConcurrentHashMap面试必问"><i class="icon icon-angle-left" aria-hidden="true"></i><span>&nbsp;&nbsp;上一篇</span></a>
    </li>
    
    
    <li class="next">
      <a href="/2019/10/31/java-ji-he-weakhashmap-yuan-ma-jie-xi/" title="Java集合- WeakHashMap源码解析"><span>下一篇&nbsp;&nbsp;</span><i class="icon icon-angle-right" aria-hidden="true"></i></a>
    </li>
    
    
    <li class="toggle-toc">
      <a class="toggle-btn collapsed" data-toggle="collapse" href="#collapseToc" aria-expanded="false" title="文章目录" role="button">
        <span>[&nbsp;</span><span>文章目录</span>
        <i class="text-collapsed icon icon-anchor"></i>
        <i class="text-in icon icon-close"></i>
        <span>]</span>
      </a>
    </li>
    
  </ul>
  
  
  <!-- Button trigger modal -->
  <button type="button" class="btn btn-fancy btn-donate pop-onhover bg-gradient-warning" data-toggle="modal" data-target="#donateModal"><span>赏</span></button>
  <!-- <div class="wave-icon wave-icon-danger btn-donate" data-toggle="modal" data-target="#donateModal">
    <div class="wave-circle"><span class="icon"><i class="icon icon-bill"></i></span></div>
  </div> -->
  
  
  <div class="bar-right">
    
    <div class="share-component" data-sites="weibo,qq,wechat,facebook,twitter" data-mobile-sites="weibo,qq,qzone"></div>
    
  </div>
  </div>
</nav>
  
<!-- Modal -->
<div class="modal modal-center modal-small modal-xs-full fade" id="donateModal" tabindex="-1" role="dialog">
  <div class="modal-dialog" role="document">
    <div class="modal-content donate">
      <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
      <div class="modal-body">
        <div class="donate-box">
          <div class="donate-head">
            <p>感谢您的支持，我会继续努力的!</p>
          </div>
          <div class="tab-content">
            <div role="tabpanel" class="tab-pane fade active in" id="alipay">
              <div class="donate-payimg">
                <img src="/images/donate/alipayimg.png" alt="扫码支持" title="扫一扫" />
              </div>
              <p class="text-muted mv">扫码打赏，你说多少就多少</p>
              <p class="text-grey">打开支付宝扫一扫，即可进行扫码打赏哦</p>
            </div>
            <div role="tabpanel" class="tab-pane fade" id="wechatpay">
              <div class="donate-payimg">
                <img src="/images/donate/wechatpayimg.png" alt="扫码支持" title="扫一扫" />
              </div>
              <p class="text-muted mv">扫码打赏，你说多少就多少</p>
              <p class="text-grey">打开微信扫一扫，即可进行扫码打赏哦</p>
            </div>
          </div>
          <div class="donate-footer">
            <ul class="nav nav-tabs nav-justified" role="tablist">
              <li role="presentation" class="active">
                <a href="#alipay" id="alipay-tab" role="tab" data-toggle="tab" aria-controls="alipay" aria-expanded="true"><i class="icon icon-alipay"></i> 支付宝</a>
              </li>
              <li role="presentation" class="">
                <a href="#wechatpay" role="tab" id="wechatpay-tab" data-toggle="tab" aria-controls="wechatpay" aria-expanded="false"><i class="icon icon-wepay"></i> 微信支付</a>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>



</main>

  <footer class="footer" itemscope itemtype="http://schema.org/WPFooter">
	
	
    <ul class="social-links">
    	
        <li><a href="https://github.com/DreamCats" target="_blank" title="Github" data-toggle=tooltip data-placement=top><i class="icon icon-github"></i></a></li>
        
        <li><a href="https://github.com/DreamCats" target="_blank" title="Weibo" data-toggle=tooltip data-placement=top><i class="icon icon-weibo"></i></a></li>
        
        <li><a href="https://github.com/DreamCats" target="_blank" title="Twitter" data-toggle=tooltip data-placement=top><i class="icon icon-twitter"></i></a></li>
        
        <li><a href="https://github.com/DreamCats" target="_blank" title="Behance" data-toggle=tooltip data-placement=top><i class="icon icon-behance"></i></a></li>
        
        <li><a href="/atom.xml" target="_blank" title="Rss" data-toggle=tooltip data-placement=top><i class="icon icon-rss"></i></a></li>
        
    </ul>

    <div class="copyright">
    	
        <div class="publishby">
        	Theme by <a href="https://github.com/cofess" target="_blank"> cofess </a>base on <a href="https://github.com/cofess/hexo-theme-pure" target="_blank">pure</a>.
        </div>
    </div>
</footer>
  <script src="//cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<script>
window.jQuery || document.write('<script src="js/jquery.min.js"><\/script>')
</script>

<script src="/js/plugin.min.js"></script>


<script src="/js/application.js"></script>


    <script>
(function (window) {
    var INSIGHT_CONFIG = {
        TRANSLATION: {
            POSTS: '文章',
            PAGES: '页面',
            CATEGORIES: '分类',
            TAGS: '标签',
            UNTITLED: '(未命名)',
        },
        ROOT_URL: '/',
        CONTENT_URL: '/content.json',
    };
    window.INSIGHT_CONFIG = INSIGHT_CONFIG;
})(window);
</script>

<script src="/js/insight.js"></script>






   




   
    
  <script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
  <script src="//cdn.jsdelivr.net/npm/valine"></script>
  <script type="text/javascript">
  var GUEST = ['nick', 'mail', 'link'];
  var meta = 'nick,mail,link';
  meta = meta.split(',').filter(function(item) {
    return GUEST.indexOf(item) > -1;
  });
  new Valine({
    el: '#vcomments',
    verify: false,
    notify: false,
    appId: '',
    appKey: '',
    placeholder: 'Just go go',
    avatar: 'mm',
    meta: meta,
    pageSize: '10' || 10,
    visitor: false
  });
  </script>

     







</body>
</html>